package com.xuecheng.orders.service;

import com.xuecheng.messagesdk.model.po.MqMessage;
import com.xuecheng.orders.model.dto.AddOrderDto;
import com.xuecheng.orders.model.dto.PayRecordDto;
import com.xuecheng.orders.model.dto.PayStatusDto;
import com.xuecheng.orders.model.po.XcPayRecord;

/**
 * @author: Hes
 * @description 保存订单信息接口
 * @date: 2023/6/27 17:22
 */
public interface OrderService {
    /**
     * 创建订单，生成二维码
     *
     * @param userId
     * @param addOrderDto
     * @return com.xuecheng.orders.model.dto.PayRecordDto 支付交易记录(包括二维码)
     */
    public PayRecordDto createOrder(String userId, AddOrderDto addOrderDto);

    /**
     * 用户扫码下单
     *
     * @param payNo 交易记录流水号
     * @return
     */
    public XcPayRecord getPayRecordByPayno(String payNo);

    /**
     * 查询支付结果，保存支付宝返回的数据和支付状态
     *
     * @param payNo 支付记录流水号
     * @return
     */
    public PayRecordDto queryPayResult(String payNo);


    /**
     * 保存支付结果
     *
     * @param payStatusDto
     */
    public void saveAliPayStatus(PayStatusDto payStatusDto);

    /**
     * 发送支付结果到交换机
     *
     * @param message
     */
    public void notifyPayResult(MqMessage message);
}
